let app = getApp();


Page({
    data: {
        //判断小程序的API，回调，参数，组件等是否在当前版本可用。
        canIUse: wx.canIUse('button.open-type.getUserInfo'),
        isHide: false,

        //昵称
        nickName: '',
        //用户头像
        userPhoto: '',
        //教师编号
        userId: 0,
        //教师姓名
        userName: '',
        //联系方式
        userPhone: 0,
        //用户类型
        userRank: 0,
    },

    onLoad: function() {
        var _this = this;
        // 查看是否授权
        wx.getSetting({
            success: function(res) {
                console.log(res);
                //之前已经授权过了
                //先把昵称 和 头像保存
                if (res.authSetting['scope.userInfo']) {
                    wx.getUserInfo({
                        success: function(res) {
                            //console.log(res.userInfo.avatarUrl);
                            app.globalData.currentUser.userPhoto = res.userInfo.avatarUrl;
                            app.globalData.currentUser.nickName = res.userInfo.nickName;
                            app.globalData.currentUser.rank = res.userInfo.rank;
                            //console.log(res.userInfo.nickName);
                            console.log(app.globalData.currentUser.nickName);

                            //进行判断，昵称对应的用户是否存在
                            _this.userJudge();

                            // 用户已经授权过,不需要显示授权页面,所以不需要改变 isHide 的值
                            // 根据自己的需求有其他操作再补充
                            // 我这里实现的是在用户授权成功后，调用微信的 wx.login 接口，从而获取code
                            // wx.login({
                            //     success: res => {
                            // 获取到用户的 code 之后：res.code
                            // console.log("用户的code:" + res);
                            // 可以传给后台，再经过解析获取用户的 openid
                            // 或者可以直接使用微信的提供的接口直接获取 openid ，方法如下：
                            // wx.request({
                            //     // 自行补上自己的 APPID 和 SECRET
                            //     url: 'https://api.weixin.qq.com/sns/jscode2session?appid=自己的APPID&secret=自己的SECRET&js_code=' + res.code + '&grant_type=authorization_code',
                            //     success: res => {
                            //         // 获取到用户的 openid
                            //         console.log("用户的openid:" + res.data.openid);
                            //     }
                            // });
                            // }
                            // });
                        }
                    });
                } else {
                    // 用户没有授权 进行授权
                    // 改变 isHide 的值，显示授权页面
                    _this.setData({
                        isHide: true
                    });
                }
            }
        });
    },

    bindGetUserInfo: function(e) {
        let _this = this;
        if (e.detail.userInfo) {
            //用户按了允许授权按钮
            var that = this;
            // 获取到用户的信息了，打印到控制台上看下
            console.log("用户的信息如下：");
            console.log(e.detail.userInfo);
            app.globalData.currentUser.userPhoto = e.detail.userInfo.avatarUrl;
            app.globalData.currentUser.nickName = e.detail.userInfo.nickName;
            //进行简单判断（该用户是否已经注册）
            _this.userJudge();

            //授权成功后, 通过改变 isHide 的值， 让实现页面显示出来， 把授权页面隐藏起来
            // that.setData({
            //     isHide: false
            // });
        } else {
            //用户按了拒绝按钮
            wx.showModal({
                title: '警告',
                content: '您点击了拒绝授权，将无法进入小程序，请授权之后再进入!!!',
                showCancel: false,
                confirmText: '返回授权',
                success: function(res) {
                    // 用户没有授权成功，不需要改变 isHide 的值
                    if (res.confirm) {
                        console.log('用户点击了“返回授权”');
                    }
                }
            });
        }
    },


    jump: function() {
        wx.reLaunch({
            url: '../schedule/schedule',
            success: (result) => {

            },
            fail: () => {},
            complete: () => {}
        });
    },





    //登录函数
    //做一个简单判断（管理员或者普通用户）
    userJudge: function() {
        let _this = this;
        wx.request({
            url: 'https://pingpinggray.top/AutoConference/user/nickname/' + app.globalData.currentUser.nickName,
            data: {},
            header: { 'content-type': 'application/json' },
            method: 'GET',
            dataType: 'json',
            responseType: 'text',
            success: (res) => {
                console.log(res.data);
                //当前nickname对应的用户不存在，弹出页面进行首次用户注册
                //经济原因，不加手机号验证
                if (res.data == '') {
                    //显示注册申请界面
                    _this.setData({
                        isHide: false
                    });
                }
                //表示，该nickname对应的用户存在，获得用户信息，进行全局赋值
                else {
                    console.log(res);
                    console.log(res.data);
                    app.globalData.currentUser.userId = res.data.userid;
                    app.globalData.currentUser.userName = res.data.username;
                    app.globalData.currentUser.userPhone = res.data.phone;
                    app.globalData.currentUser.rank = res.data.admin;
                    console.log(app.globalData.currentUser.nickName);
                    console.log(app.globalData.currentUser.userId);
                    console.log(app.globalData.currentUser.userName);
                    console.log(app.globalData.currentUser.userPhone);
                    //直接跳转到一周记录
                    _this.jump();
                }
            },
            fail: () => {},
            complete: () => {}
        });
    },

    //教工编号 输入框
    numinput: function(e) {
        var that = this;
        that.setData({
            userId: e.detail.value,
            numAble: true
        });
    },
    //教工姓名 输入框
    nameinput: function(e) {
        var that = this;
        that.setData({
            userName: e.detail.value,
        });
    },
    //教工电话 输入框
    phoneinput: function(e) {
        var that = this;
        that.setData({
            userPhone: e.detail.value,
        });
    },

    //注册登录
    loginBtn: function() {
        let _this = this;
        //首先，为全局对象属性赋值（教师编号，教师姓名 联系方式）
        app.globalData.currentUser.userId = this.data.userId;
        app.globalData.currentUser.userName = this.data.userName;
        app.globalData.currentUser.userPhone = this.data.userPhone;
        app.globalData.currentUser.rank = 0;
        console.log(app.globalData.currentUser.userId);
        console.log(app.globalData.currentUser.userName);
        console.log(app.globalData.currentUser.userPhone);
        //然后发送报备，回调跳转一周记录
        wx.request({
            url: 'https://pingpinggray.top/AutoConference/user',
            data: {
                nickname: app.globalData.currentUser.nickName,
                userid: app.globalData.currentUser.userId,
                username: app.globalData.currentUser.userName,
                phone: app.globalData.currentUser.userPhone,
                rank: app.globalData.currentUser.rank
            },
            header: { 'content-type': 'application/x-www-form-urlencoded' },
            method: 'POST',
            dataType: 'json',
            responseType: 'text',
            success: (res) => {
                console.log(res.data);
                _this.showMsgTip('success', '注册成功');
                _this.jump();

            },
            fail: () => { _this.showMsgTip('fail', '网络异常') },
            complete: () => {}
        });
    },

    //弹窗函数
    //flag - fail/success
    //msg  - 显示的话
    showMsgTip: function(flag, msg) {
        let img;
        if (flag == 'success') {
            img = '../../icons/right1.png';
        } else {
            img = '../../icons/wrong1.png';
        }
        wx.showToast({
            title: msg,
            icon: 'none',
            image: img,
            duration: 2000,
            mask: false,
            success: (result) => {

            },
            fail: () => {},
            complete: () => {}
        });
    },
})